#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //初始化游戏数组为0
    for(int i=0;i<4;i++){
        for(int j=0;j<4;j++){
            s[i][j]=0;
        }
    }

    button=new QPushButton("开始游戏",this);
    button->setGeometry(280,60,200,50);//开始游戏按钮，前两个为按钮的坐标位置，后两个为按钮的长宽大小

}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::paintEvent(QPaintEvent *)//填充颜色
{
    QPainter p(this);
    p.setBrush(Qt::blue);//setBrush填充几何图形的调色板
    p.setFont((QFont("微软雅黑",20,700,false)));//设置字体

    QString strscore;
    p.drawText(QPoint(20,60),"分数："+QString::number(score));//实时显示分数

    //格子的实现
    QColor digitBkg[11] = {QColor::fromRgb(0xEE, 0xE5, 0xDB), QColor::fromRgb(0xEC, 0xE0, 0xC8),
                                QColor::fromRgb(0xF2, 0xAF, 0x78), QColor::fromRgb(0xEE, 0x8A, 0x54),
                                QColor::fromRgb(0xFE, 0x76, 0x5E), QColor::fromRgb(0xE7, 0x58, 0xC),
                                QColor::fromRgb(0xFF, 0x66, 0x66), QColor::fromRgb(0xF1, 0xCF, 0x48),
                                QColor::fromRgb(0xCC, 0x33, 0x33), QColor::fromRgb(0xE3, 0xB9, 0x11),
                                QColor::fromRgb(0xFF, 0x00, 0x00)};
    for(int i=0;i<4;i++){
        for(int j=0;j<4;j++){
            p.setPen(Qt::transparent);//transparent是透明，setpen是设置边界
            if(s[i][j]==0){
                p.setBrush(Qt::gray);//0的时候格子填充为灰色
                p.drawRect(i*100+55,j*100+120,90,90);//放置格子，前两个为格子的坐标位置，后两个为格子的长宽大小
            }
            else if (s[i][j]==2) {
                //p.setBrush(Qt::red);
                // 设置画刷颜色为 RGB分量为171 165 141的颜色
                //QBrush brush;//(QColor::fromRgb(141, 121, 81));
                //brush.setColor(QColor::fromRgb(0xFF, 0x66, 0x66));
                // 应用这个画刷
                p.setBrush(digitBkg[0]);
                p.drawRect(i*100+55,j*100+120,90,90);
                p.setPen(Qt::black);
                p.setFont(QFont("微软雅黑",20,700,false));//控制字体和字颜色
                p.drawText(QRectF(i*100+55,j*100+120,90,90)/*字符位置*/,QString::number(2)/*将2转化为字符串并填充*/,QTextOption(Qt::AlignCenter)/*填充的字符串居中对齐*/);//在格子中绘制字符串


            }
            else if (s[i][j]==4) {
                p.setBrush(digitBkg[1]);
                p.drawRect(i*100+55,j*100+120,90,90);
                p.setPen(Qt::black);
                p.setFont(QFont("微软雅黑",20,700,false));//控制字体和字颜色
                p.drawText(QRectF(i*100+55,j*100+120,90,90)/*字符位置*/,QString::number(4)/*将4转化为字符串并填充*/,QTextOption(Qt::AlignCenter)/*填充的字符串居中对齐*/);//在格子中绘制字符串


            }
            else if (s[i][j]==8) {
                p.setBrush(digitBkg[2]);
                p.drawRect(i*100+55,j*100+120,90,90);
                p.setPen(Qt::black);
                p.setFont(QFont("微软雅黑",20,700,false));//控制字体和字颜色
                p.drawText(QRectF(i*100+55,j*100+120,90,90)/*字符位置*/,QString::number(8)/*将8转化为字符串并填充*/,QTextOption(Qt::AlignCenter)/*填充的字符串居中对齐*/);//在格子中绘制字符串


            }
            else if (s[i][j]==16) {
                p.setBrush(digitBkg[3]);
                p.drawRect(i*100+55,j*100+120,90,90);
                p.setPen(Qt::black);
                p.setFont(QFont("微软雅黑",20,700,false));//控制字体和字颜色
                p.drawText(QRectF(i*100+55,j*100+120,90,90)/*字符位置*/,QString::number(16)/*将16转化为字符串并填充*/,QTextOption(Qt::AlignCenter)/*填充的字符串居中对齐*/);//在格子中绘制字符串


            }
            else if (s[i][j]==32) {
                p.setBrush(digitBkg[4]);
                p.drawRect(i*100+55,j*100+120,90,90);
                p.setPen(Qt::black);
                p.setFont(QFont("微软雅黑",20,700,false));//控制字体和字颜色
                p.drawText(QRectF(i*100+55,j*100+120,90,90)/*字符位置*/,QString::number(32)/*将32转化为字符串并填充*/,QTextOption(Qt::AlignCenter)/*填充的字符串居中对齐*/);//在格子中绘制字符串


            }
            else if (s[i][j]==64) {
                p.setBrush(digitBkg[5]);
                p.drawRect(i*100+55,j*100+120,90,90);
                p.setPen(Qt::black);
                p.setFont(QFont("微软雅黑",20,700,false));//控制字体和字颜色
                p.drawText(QRectF(i*100+55,j*100+120,90,90)/*字符位置*/,QString::number(64)/*将64转化为字符串并填充*/,QTextOption(Qt::AlignCenter)/*填充的字符串居中对齐*/);//在格子中绘制字符串


            }
            else if (s[i][j]==128) {
                p.setBrush(digitBkg[6]);
                p.drawRect(i*100+55,j*100+120,90,90);
                p.setPen(Qt::black);
                p.setFont(QFont("微软雅黑",20,700,false));//控制字体和字颜色
                p.drawText(QRectF(i*100+55,j*100+120,90,90)/*字符位置*/,QString::number(128)/*将128转化为字符串并填充*/,QTextOption(Qt::AlignCenter)/*填充的字符串居中对齐*/);//在格子中绘制字符串


            }
            else if (s[i][j]==256) {
                p.setBrush(digitBkg[7]);
                p.drawRect(i*100+55,j*100+120,90,90);
                p.setPen(Qt::black);
                p.setFont(QFont("微软雅黑",20,700,false));//控制字体和字颜色
                p.drawText(QRectF(i*100+55,j*100+120,90,90)/*字符位置*/,QString::number(256)/*将256转化为字符串并填充*/,QTextOption(Qt::AlignCenter)/*填充的字符串居中对齐*/);//在格子中绘制字符串


            }
            else if (s[i][j]==512) {
                p.setBrush(digitBkg[8]);
                p.drawRect(i*100+55,j*100+120,90,90);
                p.setPen(Qt::black);
                p.setFont(QFont("微软雅黑",20,700,false));//控制字体和字颜色
                p.drawText(QRectF(i*100+55,j*100+120,90,90)/*字符位置*/,QString::number(512)/*将512转化为字符串并填充*/,QTextOption(Qt::AlignCenter)/*填充的字符串居中对齐*/);//在格子中绘制字符串


            }
            else if (s[i][j]==1024) {
                p.setBrush(digitBkg[9]);
                p.drawRect(i*100+55,j*100+120,90,90);
                p.setPen(Qt::black);
                p.setFont(QFont("微软雅黑",20,700,false));//控制字体和字颜色
                p.drawText(QRectF(i*100+55,j*100+120,90,90)/*字符位置*/,QString::number(1024)/*将1024转化为字符串并填充*/,QTextOption(Qt::AlignCenter)/*填充的字符串居中对齐*/);//在格子中绘制字符串


            }
            else if (s[i][j]==2048) {
                p.setBrush(digitBkg[10]);
                p.drawRect(i*100+55,j*100+120,90,90);
                p.setPen(Qt::black);
                p.setFont(QFont("微软雅黑",20,700,false));//控制字体和字颜色
                p.drawText(QRectF(i*100+55,j*100+120,90,90)/*字符位置*/,QString::number(2048)/*将2048转化为字符串并填充*/,QTextOption(Qt::AlignCenter)/*填充的字符串居中对齐*/);//在格子中绘制字符串


            }
            else {
                p.setBrush(digitBkg[11]);
                p.drawRect(i*100+55,j*100+120,90,90);
                p.setPen(Qt::black);
                p.setFont(QFont("微软雅黑",20,700,false));//控制字体和字颜色
                p.drawText(QRectF(i*100+55,j*100+120,90,90)/*字符位置*/,QString::number(s[i][j])/*将s[i][j]转化为字符串并填充*/,QTextOption(Qt::AlignCenter)/*填充的字符串居中对齐*/);//在格子中绘制字符串


            }
        }
    }


}
